package com.cskaoyan.javase.oop2.override8.exercise3;

/**
 * @description: 练习
 * @author: wuguidong@cskaoyan.onaliyun.com
 **/

/**
 * 继承练习： 猫狗案例
 * 猫狗都有品种（breed），名字，年龄的属性
 *  这里你一看，有成员要复用，于是抽取出一个父类 Animal
 * 行为上都有吃，叫的方法
 * 但是猫可以抓老鼠，狗可以看门
 * 这里我要重写父类的吃和叫的方法 因为狗和猫吃叫肯定不同
 *
 */
public class Demo {
    public static void main(String[] args) {
        Cat cat = new Cat();
        Dog dog = new Dog();
        cat.eat(); //猫吃猫粮
        dog.shout(); //旺旺旺
    }
}
class Animal{
    String breed;
    String name;
    int age;
    public void eat(){
        System.out.println("动物吃！");
    }
    public void shout(){
        System.out.println("动物叫！");
    }
}
class Dog extends Animal{
    //子类的扩展功能
    public void watchDoor(){
        System.out.println("狗看门！");
    }
    //怎么重写父类的方法？不要用手写

    @Override
    public void eat() {
        System.out.println("狗吃狗粮！");
    }
    @Override
    public void shout() {
        System.out.println("旺旺旺");
    }
}
class Cat extends Animal{
    //子类扩展的功能
    public void catchMouse(){
        System.out.println("猫抓老鼠！");
    }
    //子类重写

    @Override
    public void eat() {
        System.out.println("猫吃猫粮！");
    }

    @Override
    public void shout() {
        System.out.println("喵喵喵");
    }
}

